package org.example.backend.bean;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

/**
* Controller请求日志表
* @TableName controller_log
*/
@TableName(value = "controller_log")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ControllerLog implements Serializable {

    /**
    * 日志ID
    */
    @NotNull(message="[日志ID]不能为空")
    @TableId
    private Long id;
    /**
    * HTTP方法
    */
    @NotBlank(message="[HTTP方法]不能为空")
    @Size(max= 10,message="编码长度不能超过10")
    @Length(max= 10,message="编码长度不能超过10")
    private String httpMethod;
    /**
    * 请求URI
    */
    @NotBlank(message="[请求URI]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @Length(max= 500,message="编码长度不能超过500")
    private String requestUri;
    /**
    * 客户端IP
    */
    @NotBlank(message="[客户端IP]不能为空")
    @Size(max= 50,message="编码长度不能超过50")
    @Length(max= 50,message="编码长度不能超过50")
    private String clientIp;
    /**
    * 类名.方法名
    */
    @NotBlank(message="[类名.方法名]不能为空")
    @Size(max= 255,message="编码长度不能超过255")
    @Length(max= 255,message="编码长度不能超过255")
    private String classMethod;

    private Long userId;

    private Date createTime;
}
